package org.nanotek.cms.domain.space;

import org.nanotek.Kong;
import org.nanotek.cms.domain.space.dimension.Dimensionable;
import org.nanotek.cms.domain.space.location.Locable;

/**
 * A Spaceable Interface defines a contract which the Object that implement it, will 
 * provide 2 Distinct Structures (Dimension and Location) which defines the Object that 
 * is self identifiable by the get() method. 
 * @author josecanova
 *
 * @param <D>
 * @param <L>
 */
public interface Spaceable <D extends Dimensionable<?>,L extends Locable<?>> extends Kong<Class<? super Spaceable<D,L>>>{

	public D getDimension(); 
	public L getLocation();
	
}
